package com.theblind.annotation;


import java.lang.annotation.*;

/**
 * 数据监视
 *
 * @author TheBlind
 */
@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在，在运行时可以通过反射获取到
@Target(ElementType.METHOD) //接口、类、枚举、注解
@Documented
public @interface Oversee {
    /**
     * @return 描述
     */
    String describe() default "";

    boolean isGroup() default true;

    /**
     *
     * @return  所属组
     */
    String belongGroup() default "";
    /**
     * 值 默认为组值 当不赋值时 动态获取
     *
     * @return
     */
    String value() default "";

    /**
     * 获取步骤 Java 代码
     * 用@Return=来获取最终返回值
     * -@Return只能为String类型
     * 不支持语法糖 因为语法糖会在编译期转化为最终的代码
     *
     * @return
     */
    String getValueSteps() default "";

    String getDescribeSteps() default "";

    String getIsGroupSteps() default "";
}
